Mosquitto заявляет Ошибка Отказано в разрешении при открытии порта - PullRequest
0 голосов
/ 02 октября 2018

У меня есть брокер Mosquitto, работающий на экземпляре Linux EC2.Когда я пытаюсь запустить mosquitto с портом, настроенным на 1883, он работает нормально, но когда я пытаюсь запустить его с портом 443, он говорит «Открытие порта 443 ipv4», а затем следующая строка «Ошибка: разрешение запрещено».У меня этот порт открыт в моем случае.Я не могу найти информацию об этой конкретной ошибке.

1 Ответ

0 голосов
/ 02 октября 2018

На компьютерах Linux и UNIX порты ниже 1024 ограничены, поэтому прослушивать их могут только процессы, работающие с правами root.Если ваш процесс не выполняется от имени пользователя root, он получит ошибку «Отказано в доступе», когда он попытается прослушивать этот порт или любой другой порт с номером ниже 1024.

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

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

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

Если вы запустите mosquito от имени root, вы обязательноиспользуйте параметр user в mosquitto.conf , чтобы установить имя пользователя, на которое mosquitto должен переключаться после запуска.

Кстати, 443 - это особый выбор для запуска MQTTброкер, так как это порт, который используется HTTPS.

...