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

работает red5 на порту 80

У меня есть приложение 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 в качестве обратного прокси для вашего приложения может сработать.