Назад | Перейти на главную страницу

Сделать пользователя или группу собственным портом

В некоторых ситуациях веб-приложение будет взаимодействовать с клиентами через обратный прокси-сервер (например, Apache с mod_proxy), где обратный прокси-сервер прослушивает порт 80, а веб-приложение прослушивает порт больше 1023 (поскольку root владеет портами ниже 1024).

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

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

Или вы просто назначаете фиксированный порт в диапазоне зарезервированных портов и предоставляете своему приложению права на привязку к этому порту.

sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/application

Если у вас есть Selinux (не уверен насчет AppArmor), вы, скорее всего, сможете этого добиться:

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