Вопрос чисто гипотетический. Можно ли ограничить, какие порты определенные пользователи могут использовать для своих процессов? Скажем, users1 получает порты 8000-8999, а user2 получает порты 9000-9999.
Я использую Ubuntu 11.10.
Вам следует подумать об использовании iptables с модулем владельца. Я никогда не пробовал его именно в этой ситуации, но, похоже, он отвечает на ваш вопрос.
Единственным родным приложением Linux, которое может справиться с подобными ограничениями, может быть SElinux, который является частью дистрибутива Ubuntu. SElinux очень сложен, и я не уверен, как бы вы реализовали ограничения портов для каждого пользователя. Это будет между вами и Google.
Это обсуждение упоминает два патча ядра (GRsecurity и ТОМОЙО), которые специально разрешают ограничения порта на уровне приложения, хотя обсуждение включает ссылку на ограничение порта для каждого пользователя.
Наконец, я видел ссылки на другой патч ядра под названием 'пользовательский порт-взлом'но его страница проекта не планируется, и в одном сообщении о ядре упоминается, что она предназначена только для ядра 2.4. Возможно, вы сможете докопаться до этого.
Левостороннее решение, которое я вижу для вашего требования, - это просто попросить пользователей соответствовать политике. т.е. «Пользователь X, пожалуйста, используйте только порты 8000-8999».
В качестве альтернативы, если ваши пользователи настаивают на использовании портов, отличных от выделенных им 1000, вы можете изолировать пользователей от их собственных выделенных виртуальных машин, а затем реализовать правила брандмауэра / iptables на уровне хоста, чтобы ограничить трафик определенным диапазоном портов для каждого IP-адрес ВМ.