web-dev-qa-db-ja.com

ポート80でred5を実行

私はred5アプリケーションを持っています http://code.google.com/p/openmeetings red5で実行され、ポート5080と8443でアクセスできます

Ubuntu10.04にインストールしました

最終的な目的は、8443ではなく443のhttps経由でアクセスできるようにすることですが、最初は80を試して、問題がSSL証明書ではなくポート構成にあるようにすることを考えました。

Red5.propertiesファイルでポートを5080から80に変更しようとしましたが、起動に失敗します。

私が見たred5.logで

エラーo.a.coyote.http11.Http11Protocol-エンドポイントJava.net.BindExceptionの初期化中にエラーが発生しました:アクセスが拒否されました/0.0.0.0:80

私が見たerror.logで

エラーo.a.coyote.http11.Http11Protocol-エンドポイントJava.net.BindExceptionの初期化中にエラーが発生しました:アクセスが拒否されました/0.0.0.0:80

そして

エラーorg.red5.server.Tomcat.TomcatLoader-Tomcatのロード中にエラーが発生しました。コネクタをバインドできません。選択したポートを使用する権限がない可能性がありますorg.Apache.catalina.LifecycleException:プロトコルハンドラの初期化に失敗しました:Java.net.BindException:権限が拒否されました/0.0.0.0:80

ポート80には他に何もインストールまたは実行されていないため、これは「ルートである必要がある」状況であると推測されます。インターネットでアクセス可能なWebサービスをrootとして実行したくありません。

/ etc/default/Tomcat6で「#AUTHBIND = no」を「AUTHBIND = yes」に変更することでTomcatをポート80で実行できることは知っていますが、red5に類似したものは見つかりませんでした。

私は何も隠していないのですか、それともrootとして実行するよりも良い方法がありますか?

ありがとう!

2
shouldbeq931

通常のユーザーとして、Linuxの1024未満のポートでは何も実行できません。この質問を確認してください:

および関連する回答。

1
icyrock.com

私の知る限り、red5には、他の多くのデーモン(Apache、Tomcatなど)と同様に、 特権ポート をバインドしてroot権限を通常のユーザーアカウントに戻す機能がありません。 。

したがって、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
}
1
Michael Hampton

それはあなたが求めていたものではないことは知っていますが、アプリのリバースプロキシとしてApacheまたはnginxを使用するとうまくいく可能性があります。

0