У меня есть приложение red5 http://code.google.com/p/openmeetings который работает под red5 и доступен на портах 5080 и 8443
Я установил его на Ubuntu 10.04
Конечная цель - сделать его доступным через https на 443 вместо 8443, но я подумал, что сначала попробую на 80, чтобы любые проблемы были связаны только с конфигурацией порта, а не с сертификатами SSL.
Я попытался изменить порт с 5080 на 80 в файле red5.properties, но он не запускается.
В журнале red5.log я видел
ОШИБКА o.a.coyote.http11.Http11Protocol - Ошибка инициализации конечной точки java.net.BindException: Permission denied /0.0.0.0:80
В error.log я видел
ОШИБКА o.a.coyote.http11.Http11Protocol - Ошибка инициализации конечной точки java.net.BindException: Permission denied /0.0.0.0:80
и
ОШИБКА org.red5.server.tomcat.TomcatLoader - Ошибка загрузки tomcat, не удается привязать коннектор. Возможно, у вас нет разрешения на использование выбранного порта org.apache.catalina.LifecycleException: ошибка инициализации обработчика протокола: java.net.BindException: Permission denied /0.0.0.0:80
На 80-м порту больше ничего не установлено и не запущено, поэтому я предполагаю, что это ситуация, в которой "нужен root". Я бы предпочел не запускать доступную в Интернете веб-службу с правами root.
Я знаю, что Tomcat может работать на порту 80, изменив «# AUTHBIND = no» на «AUTHBIND = yes» в / etc / default / tomcat6, но мне не удалось найти ничего похожего для red5.
Я ничего не скрываю, или есть способ лучше, чем работать с правами root?
Спасибо!
Насколько я могу судить, red5 не предусматривает привязки привилегированный порт а затем сбросить привилегии root обратно к учетной записи обычного пользователя, как это делают многие другие демоны (такие как Apache, tomcat и т. д.).
Таким образом, хотя вы можете запустить его как root и привязать к порту 80, он останется работать как root и будет весьма небезопасным.
Чтобы обойти это, используйте какое-то перенаправление портов. Например, xinetd имеет встроенную переадресацию портов, поэтому, если вы уже используете ее для чего-то еще, вы можете настроить простую переадресацию портов:
service yourservicename
{
disable = no
type = UNLISTED
socket_type = stream
protocol = tcp
user = nobody
wait = no
redirect = 127.0.0.1 5080
port = 80
}
Вы не можете запускать что-либо на портах <1024 в Linux от имени обычного пользователя. Отметьте этот вопрос:
и соответствующие ответы.
Я знаю, что это не то, о чем вы просили, но, возможно, использование apache или nginx в качестве обратного прокси для вашего приложения может сработать.