turnサーバの構築

3937 ワード

Coturnは現在の最新RFCのSTUN/TURN/ICEに関する要求に合致する.このプロジェクトはrfc 5766-turn-serverから進化したもので、原作者のOleg Moskalenkoが新しい規格に対応するために再開発した標準TURNサーバです.このドキュメントでは、仮想マシン上でcoturnサービスを構築するための詳細な手順について説明します.
1オペレーティングシステムの要件
本明細書で説明するcoturn構築手順は、以下のオペレーティングシステム環境に基づいている.
  • REDHAT/CentOS Server 7.6

  • coturnが現在インストールする必要があるgccバージョン:
  • gcc 3.4.4 thru 4.8.x

  • 現在のユーザーの最大オープンディスクリプタ数を10万に増やし、デフォルトのプロファイル/etc/security/limits.confに保存する
    2依存パッケージ
    coturnを構築する前に、次のパッケージ/ライブラリがシステム標準の場所にインストールされていることを確認してください.
  • opensslおよび開発パッケージ
  • sudo yum install openssl-devel
  • sqliteおよび開発パッケージ
  • sudo yum install sqlite
    sudo yum install sqlite-devel
    
  • libeventおよび開発パッケージ
  • sudo yum install libevent
    sudo yum install libevent-devel
    

    yumで以上のパッケージをインストールするには、まずepelを手動でインストールする必要があります.sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    また、現在epelでlibevent-develパッケージが見つからないため、手動でインストールする必要があります.ネット上でrpmパッケージ倉庫を見つけて、http://www.rpmfind.net/linux/rpm2html/search.php?query=libevent-この環境のlibevent-develが含まれています.sudo yum install http://www.rpmfind.net/linux/centos/7.6.1810/os/x86_64/Packages/libevent-devel-2.0.21-4.el7.x86_64.rpm
    3インストールディレクトリの作成
    メンテナンスを容易にするために、サードパーティがインストールしたアプリケーションは、システム標準ディレクトリにインストールされるのではなく、別の/apprunディレクトリに個別にインストールされます.関連ディレクトリを作成する手順は、次のとおりです.
    sudo mkdir /apprun
    sudo chown ec2-user:ec2-user /apprun/
    mkdir /apprun/usr/
    mkdir /apprun/usr/log
    mkdir /apprun/usr/var/db
    mkdir /apprun/usr/var/run
    

    4構築
    coturnソースパッケージを解凍し、ソース最上位ディレクトリで次の操作を行います.
    構成:configure --prefix=/apprun/usr
    コンパイルcoturn:make
    指定したディレクトリにcoturnをインストールmake install
    5 coturnプロファイルの変更
    添付ファイルのturnserver.confを次のディレクトリにコピーします.
    /apprun/usr/etc/
    添付ファイルのデフォルトturnserver.confは主に以下のいくつかの設定項目を構成します.具体的な配置状況に応じて変更してください.
  • external-ip:クラウドホストに設定されたパブリックネットワークIP
  • min-port/max-port:最下位/最上位のUDP転送ポート
  • verbose:詳細ログを開始
  • lt-cred-mech:long-term検証メカニズム
  • を起動
  • userdb:user情報を格納sqliteデータベースファイルパス、/apprun/usr/var/db/turndb
  • に設定
  • realm:デフォルトのrealmは、クライアントがrealmを指定していない場合にデフォルトで使用されます.
  • log-file:ログファイルパス、この例では/apprun/usr/log/turn.log、coturnのログシステムであり、coturnを再起動するたびにこのログファイルが上書きされ、デフォルトでは毎日新しいログファイルが生成されます.(ログファイルパスが設定されている場合、ファイル名にpidが接続されず、前回のログが上書きされ、一定の設計上の欠陥がある)
  • allow-loopback-peers:loopbackインタフェースでの処理を許可し、
  • のデバッグを容易にする
  • pidfile:pidファイルパス、この例では/apprun/usr/var/run/turnserver.pid
  • no-tls:tlsポート
  • を傍受しない
  • no-dtls:dtlsポート
  • を傍受しない
  • user:静的ユーザ/パスワード構成(現在のシステムのすべての端末が同じ静的ユーザ名/パスワードを採用)
  • 6手動起動coturn
    任意のディレクトリに次のコマンドを入力し、プロセスを保護するようにcoturnを起動します./apprun/usr/bin/turnserver -c /apprun/usr/etc/turnserver.conf -o
    7ファイアウォール構成の変更
    クラウドファイアウォールの構成を変更し、次のような放行ルールを追加します.
    インバウンド・ルール:
    プロトコル
    ポート範囲
    ソース
    TCP
    3478 - 3479
    0.0.0.0/0
    UDP
    3478 - 3479
    0.0.0.0/0
    UDP
    20000 - 29999
    0.0.0.0/0
    アウトバウンド・ルール:すべてのトラフィック
    8手動セルフテスト
    coturnサービスを正常に起動した後、サーバが正常に動作していることを確認するために、テストスクリプトを手動で実行する必要があります.コンパイルに成功したソースディレクトリに入り、ソースディレクトリの下で以下のテストスクリプトを実行します.
    ./examples/scripts/rfc 5769.sh#自己測定暗号化署名機能
    examples/scripts/basic/udp_の変更c2c_Client.shは、127.0.0.1をcoturnサーバのパブリックネットワークIPに変更し、-u test-w 1234パラメータ(プロファイルに設定されているユーザーパスワードと一致)を追加し、スクリプトを実行します.
    ./examples/scripts/basic/udp_c2c_client.sh
    このスクリプトを別のホストで実行して、turnの接続性をよりリアルに検証することもできます.
    9タイミング検出スクリプトのインストール
    信頼性を向上させ、自動的に起動するには、システムにチェックスクリプトをインストールする必要があります.coturnが予期せぬ状況で終了した場合、直ちに再起動し、サービスの可用性を保証することができます.インストール方法は、添付ファイルのstart.coturn.shスクリプトを/apprun/usr/bin/ディレクトリにコピーし、スクリプトのワークパスを/apprun/usrに変更します.
    次のコマンドを使用して、現在のユーザーcrontabを開きます.
    crontab -e
    crontabテーブルに次の引用符の文を追加します.
    "* * * * */apprun/usr/bin/start.coturn.sh >/dev/null 2>&1 "