2011-01-07 5 views
1

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

+0

Что пользователь? Вы имеете в виду IP-адрес с одним источником? –

+0

no, локальный пользователь –

ответ

2

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

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

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

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

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

+0

Я беспокоюсь только об исходящем, потому что я только хочу заблокировать запрос от его создания, а если запрос заблокирован, то как будет возникать какой-либо ответ. Не могли бы вы дать команду, которую мне нужно будет использовать? У меня нет большого опыта работы с iptables. –

1

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