Как ограничить порт 80 только одним пользователем с iptables - PullRequest
1 голос
/ 08 января 2011

Я хочу ограничить порт 80, чтобы его мог использовать только один пользователь.Я хочу сделать это с помощью iptables. Я не нашел никакой документации о том, как это сделать.

Ответы [ 2 ]

2 голосов
/ 08 января 2011

Если вы имеете в виду «локального пользователя с дискретным uid», вы можете использовать модуль владельца (-m owner) и параметр --uid-owner #.

Но здесь есть некоторые проблемы:

  1. Это работает только для исходящих пакетов.
  2. Некоторые пакеты не имеют владельцев.

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

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

1 голос
/ 08 января 2011

iptables имеет совпадение -m owner --uid-owner ###, которое «соответствует, если пакет был создан процессом с заданным эффективным идентификатором пользователя»

...