Как настроить ограничения уровня пользователя для шлюза?

Мне известно, что Ubuntu Server можно использовать в качестве шлюза для подключения к локальной сети через Интернет.

Затем мы используем IP-таблицы или другие настройки брандмауэра, чтобы ограничить (например) доступ к определенным веб-сайтам.

Мой вопрос: может ли это ограничение быть сделано для отдельных пользователей, и если да, то могут ли некоторые поделиться ссылкой или ресурсом, который я могу использовать для этой цели?

1 ответ

Решение

Вы можете использовать что-то вроде iptables -A OUTPUT -m owner --uid-owner 1001 соответствовать на локального пользователя. Но это работает только для пользователей на компьютере с брандмауэром.

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

Таким образом, блокирование с помощью машины легко, но блокирование с помощью пользователя является нетривиальным без какого-либо дополнительного механизма для дифференциации пользователей.

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

Существуют различные способы настройки пользователей для прохождения через прокси, в том числе "автоопределение веб-прокси" (wpad), "proxy.pac", "прозрачное проксирование" и вручную.

HTTP поддерживает дополнительный этап проверки подлинности прокси-сервера, и если вы включите его, пользователям будет предложено ввести имя пользователя и пароль при попытке доступа в Интернет. Тогда кальмар будет знать, кто есть кто.

Наконец, есть различные решения, которые подключаются к squid, которые принимают решения о том, что заблокировано, а что нет; хотя, если вы просто хотите заблокировать некоторые конкретные URL-адреса, вы можете сделать это непосредственно в squid.

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