Отключить сеть для определенных пользователей


16

Я работаю над дистрибутивом Ubuntu / Mint, предназначенным для запуска Live. Есть несколько учетных записей, которые делятся на три основные группы: администратор, Интернет и безопасность.

  • Администратор , очевидно, имеет право делать все, что угодно.
  • Интернет- аккаунт предназначен для пользования интернетом.

Другие учетные записи являются учетными записями безопасности . Ни при каких обстоятельствах не разрешается использовать любые сетевые Интернет, принтеры, Bluetooth, устройства WiFi и т. Д.

Что я хотел бы сделать, это удалить сетевые драйверы из ядра, но это отключило бы учетные записи, которые нуждаются в Интернете.

Каковы самые низкие способы отключения Интернета для этих учетных записей безопасности? Я ищу невозможное подключение решений.

Ответы:


14

Вы можете сделать это с iptables.

На терминале добавьте правило iptables

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

где username - это пользователь, которому вы хотите отключить интернет-соединение. Сохраните файл и выйдите.

Это добавит правило, согласно iptablesкоторому любые исходящие пакеты, созданные указанным пользователем, будут автоматически отбрасываться iptables.

Если вы хотите сделать то же самое для полной группы, я полагаю, что вместо --uid usernameвас --gid-owner groupnameэто будет иметь тот же эффект для всей группы пользователей.

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

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

Чтобы сделать правило постоянным, вы можете создать скрипт /etc/network/if-up.d/, добавить в него необходимые строки и сделать его исполняемым.


Как вариант используйте iptables-saveдля сохранения ваших текущих правил и восстановления их при загрузке.

Сохранить текущие iptablesправила

sudo iptables-save > /etc/iptables_rules

Откройте /etc/rc.localс помощью вашего любимого текстового редактора и в конце файла добавьте

/sbin/iptables-restore < /etc/iptables_rules

Это восстановит сохраненные правила при каждой загрузке.

Для получения дополнительной информации посетите страницу [ iptablesmanpage ] для получения дополнительной информации о нескольких iptablesвариантах.


Благодарю. Это сработало для Интернета, но этот пользователь все еще может использовать Bluetooth. Я тестирую для беспроводной, но не подтвердил. Кажется, я застрял на DENY. Я пытался, sudo iptables -A OUTPUT -p all -m owner --uid-owner internet -j ACCEPTно это не включало его для тестирования.
bambuntu

Хорошо, iptables кажется фильтром для чего-то более низкого, что фактически создает сетевое соединение. Какое приложение делает возможным соединение? Могу ли я отключить это? Если это так, отключение на основе того, кто контролирует консоль. Этот живой дистрибутив предназначен для нескольких пользователей, но не для более чем одной консоли. Итак, если я смогу отследить, кто использует консоль, я думаю, что смогу отключить это сетевое приложение на основе разрешений этих пользователей.
Bambuntu

Ну, это будет ваш сетевой менеджер в Ubuntu, который будет network-manager, если вы удалите пользователя из группы networkи отключите соединение в network-managerили другом подобном инструменте, он не сможет снова его установить, с другой стороны, пользователь, который является частью из группы сети будет. Это еще один уровень мышления, поскольку он сам отключает соединение.
Бруно Перейра

После небольшого поиска в Google, я обнаружил, что вы можете удалить сетевой менеджер и настроить Ubuntu традиционно, отредактировав / etc / network / interfaces . Похоже, это не сетевое приложение, которое я хочу отключить. Я смотрю немного ниже. Как низко мы можем идти до того, как доберемся до водителя?
Bambuntu

Я был в состоянии удалить и очистить сетевой менеджер. В этот момент сеть была отключена. Но я смог вернуть вещи с этим: sudo /etc/init.d/networkingпосле редактирования /etc/network/interfaces Так /etc/init.d/networkingнизко, как ты?
Bambuntu

2

Решение Бруно хорошо: я думаю, вероятно, лучшее автономное решение.

Другой вариант, о котором вы можете подумать, - это установить брандмауэр / прокси на отдельной машине в качестве шлюза в Интернет, который разрешает только те соединения, которые обеспечивают аутентификацию для каждого пользователя. Вы можете использовать оба вместе для дополнительной защиты.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.