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

В системе на основе Debian; как суперпользователь, мне нужно ограничить доступ к некоторым веб-сайтам, но только для конкретного пользователя. Например, abc.com для user1, xyz.com для user2...

Я пробовал файл /etc/hosts. Добавление строки как

127.0.0.1 abc.com

делает то, что я хочу. Но это относится ко всем пользователям, поскольку существует только один файл hosts. Насколько я знаю, невозможно настроить файл hosts для разных пользователей. Есть ли другие способы сделать это?

2 ответа

Решение

Если пользователи вошли локально, вы можете использовать iptables:

iptables -A OUTPUT -o EXTERNAL_IF -m owner --uid-owner USERNAME -d DESTINATION_WEB -j REJECT

где:

  • EXTERNAL_IF - это имя интернет-интерфейса (например, eth0)
  • USERNAME - это логин ограниченного пользователя.
  • DESTINATION_WEB - это DNS-имя или IP-адрес веб-сайта назначения. Остерегайтесь сайтов, на которых размещено много веб-сайтов (например, блоггер) или сайтов, имеющих несколько общедоступных IP-адресов (например, Google).

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

Другие вопросы по тегам