В некоторых ситуациях веб-приложение будет взаимодействовать с клиентами через обратный прокси-сервер (например, Apache с mod_proxy), где обратный прокси-сервер прослушивает порт 80, а веб-приложение прослушивает порт больше 1023 (поскольку root владеет портами ниже 1024).
Как упоминалось в некоторых ответах на этот вопрос, любой процесс может начать прослушивание порта с высоким уровнем, если никакой другой процесс еще не начал прослушивать его. Это может быть проблемой, если веб-приложение еще не начало прослушивать порт, а какой-то другой процесс начинает прослушивать его первым, случайно или злонамеренно.
Есть ли способ сделать так, чтобы пользователю или группе принадлежал порт, чтобы только владелец веб-приложения мог запустить процесс, который прослушивает этот порт?
Или вы просто назначаете фиксированный порт в диапазоне зарезервированных портов и предоставляете своему приложению права на привязку к этому порту.
sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/application
Если у вас есть Selinux (не уверен насчет AppArmor), вы, скорее всего, сможете этого добиться:
Убедитесь, что только контекст этого конкретного приложения может прослушивать этот порт, а затем убедитесь, что только ваш желаемый пользователь может запустить это приложение.