テキストコピッド
ホーム >ニュース AWS上のMQTTブローカー

セキュアMQTT AWS上でのブローカーホスティング

バイ Ponlakshmi


Rule Engine

インターネット お知らせ世界中のどこからでもデバイスやセンサーを移動し、管理しています。 安全なホスティングMQTTブローカークラウド上でこれを達成する義務があります。 しかし、人々は非常に多くあります パラノイドについてセキュリティアプリケーションとデータ。 お問い合わせ 記事は、 ホスティングのためのガイドを終わらせる完全な端セキュアMQTT ブローカーお問い合わせお問い合わせ MQTT Broker AWS のホスティングに使用されるメッセージブローカーは、Bevywise MQTTブローカーお問い合わせ

AWSアカウントの作成

年間利用できる無料のAWSアカウントを作成します。 確認することができます無料ティアの詳細お問い合わせ その他 それ, AWSアカウントは、1 GBのRAM、ストレージ容量5 GB以上の1つのCPUを提供します。 これは非常にです お問い合わせ VM 上で MQTT ブローカーを実行する構成。

EC2の準備

作成するEC2インスタンスそして、 特に無料について 使用法、作ります 許可されている VM のタイプを選択してください。 ただし、オペレーティングシステムの場合は、Ubuntu 14.04または16.04を選択します。 インスタンス。


SSH の作成 SFTP と SSH を介して EC2 インスタンスに接続するためのキーペア。 しかし、 お問い合わせ SSHキーを同一に使用できます。 鍵は名前の名前になります。 ログイン


VM は Ubuntu の普通のバニラバージョンになります。 次にEC2インスタンスに接続できます。 お問い合わせ SSH.S.S.S.S.S.S.S.S.SSH.S.S.SSH.S.SSH.S.SSH.S.SSH.S.SSH.S.SSH.S.SSH.S.SSH.S.S.SSH.S.S.SSH.S.S.SSH.S.S.SSH.S.S.S.S.S.SSH.S.S.SSH.SSH.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S その後、任意のパッチのUbuntuを更新し、zipユーティリティをインストールします。

$ sudo apt-getアップデート

$ sudo apt-get zip unzip をインストール

セットアップ MySQL

セキュアなMQTTブローカーは、ログイン接続されたクライアントを格納する サブスクリプション、および お問い合わせ メッセージトランザクション。 次のコマンドを使用して MySQL をインストールします。 それから これらのコマンドは、 お問い合わせ root パスワードも、EC2 Instance で MySQL インスタンスを保護します。 しかし、 MySQLを記憶する パスワード MQTT ブローカー設定ファイル内で設定する必要があります。

$ sudo apt-getはmysql-serverをインストールします。 $ sudoの mysql_secure_installation ディレクティブ $ sudo mysql_install_db は、


MySQL が localhost (127.0.0.1) で実行するように設定されていることを確認してください。 それから /etc/mysql/my.cnf を点検して下さい

bind-address = 127.0.0.1 の

Ubuntu はブローカーを実行できるようになりました。

セキュアなMQTTブローカーを設定する

すべての機能でMQTTブローカーをダウンロードしてください。


FileZillaのようなツールを使用してSFTPを使用してEC2インスタンスにファイルをコピーできます。 それ以外にも、 使用方法 同一のSSHキーで、認証目的のペアリングを行います。 MQTTブローカーをインストールし始めましょう 欧州共同体2 インスタンス。


MQTTブローカーを解凍し、製品ホームフォルダに移動します。

$の解凍 Bevywise_MQTT_Route_Linux.zip

$ cd ビーワイズ/MQTTRoute/


MySQLの設定 パラメータconf/db.conf の内部。


SQLITEからMYSQLにデフォルトのDBサーバーを変更し、提供されたMySQLパスワードを更新します。 開催期間 MySQLのインストール。

DB_SERVER=マイSQL


MYSQL_USER = ルート MYSQL_PASSWORD=<mysql_password>>

クライアント接続の確保

TLSモードを有効にして、クライアントとサーバー間の通信を確保し、設定を行います。 ログインパスワード それから すべてのクライアントまたは個々のパスワードで1つのパスワードを使うことができます 各クライアント


conf/broker.conf を開き、TLS_ENABLED を TRUE として更新します。 しかし、 他のすべての値を変更できます お問い合わせ 必要な。 ブローカーおよび安全なWebソケットの非正規のポート番号を使用して、さらに強化します セキュリティ DDOSに対して。

TLS_ENABLED = TRUE(トゥルー)
TLS_PORT_NO=8883の特長
WSS_PORT_NO = 8000>


クライアントが接続したときに使用できるユーザー名とパスワードの強力なセットを作成します。 セキュア MQTTブローカー。 それに加えて、証明書/認証/内部の資格情報のリストを追加できます。 フォルダ。

ユーザー名とパスワードは必須です。
<ユーザー名><<タブ>><パスワード>
オペレーション_mgr_usr エルセス!@421sedPas
外部_dev_user aszWxDes@!*&Rs4


conf/broker.conf で認証を有効にします。 しかし、 異なるファイルを使用する場合 お問い合わせ ユーザー名とパスワードリスト、資格情報ファイルのパスを変更できます。

[お知らせ]
AUTHENTICATION_ENABLED = はい
# はい | なし
PASSWD_FILE = ./認証/認証/認証/認証/認証/資格.txt


その後、ブローカーが継続的に実行されていることを確認するためにバックグラウンドでMQTTブローカーを開始します。

$ cd ./ ビン
$ nohup sh runbroker. sh と

MQTT ブローカーは TCP ポート 1883、Web ソケット ポート 8000、および HTTP ポート 8080 で起動します。

Apache によるユーザーインターフェイスの確保

apache サーバは、ユーザインタフェースのフロントエンドとして設定され、リクエストはルーティングされます。 apacheの仮想ホスト構成を使用してMQTTブローカーのポート808080。 その後、 基本情報 ユーザーインターフェイスの確保のために、apache の認証を有効にします。

apacheサーバーをインストールします。

$ sudo apt-get インストール apache2
$ sudo apt-get インストール apache2-utils

まず、ユーザー名とパスワードは、基本を有効にするためのapacheに追加する必要があります 認証。 それから ユーザ名を追加するには、次のコマンドを実行します。 お問い合わせ お問い合わせ パスワードと確認と.htpasswdファイルに追加されます。

$ sudo htpasswd -c /etc/apache2/.htpasswd <<ユーザー名>>


下記のコマンドでユーザー追加を確認

$ 猫 /etc/apache2/.htpasswd
sammy:$apr1$DeD6bRwI$sCkKfg7Ly/nkXPiXG.PUP0


お問い合わせ apache サーバを再起動して認証を有効にする必要があります。 お問い合わせ サーバを再起動する前にポート8080にプロキシする。


apache のプロキシモジュールを有効にする。

$ sudo a2enmodプロキシ
$ sudo a2enmod プロキシ_http


それから逆のプロキシのために、私達は次をに加える必要があります /etc/apache2/sites-enabled/000-default.conf.

プロキシパス/ http://localhost:8080/ プロキシパス逆 / http://localhost:8080/

<開催場所>
AuthType 基本
AuthName 「制限コンテンツ」
AuthUserFile /etc/apache2/.htpasswd
有効なユーザーを要求して下さい
</場所>


上記の変更で apache サーバを再起動して効果を発揮します。


$ sudo サービス apache2 再起動

AWSの設定 防火壁

AWS ファイアウォールは、ネットワークとセキュリティ→セキュリティグループオプションを AWS 内で設定できます。 コンソール。 それから 4つのポート、Apache — 80、Webソケット — 8443、TLS へのインバウンド接続を有効にする必要があります。 TCPについて — 8883 & SSH — 22. しかし、 内部ネットワークからデバイスを接続する予定がある場合は、 缶缶缶 AWS がデータ送信から他のすべての IP を制限することを確認するには、ソースの IP のオプションを使用します。 この特定のポートはより安全です。


AWS Firewall

モバイルアプリケーション

送信および受け取るために使用できる基本的なモバイルアプリケーションがありますMQTTの特長異なるデバイスからのメッセージ。


MQTTブローカーの永久無料版を使用している場合は、最大10台まで接続できます。 クライアントへ ブローカー。 さらに、あなたはすべての基本とクラウド上の完全に無料MQTTサーバーを使用しています お問い合わせ


最後に、MQTTブローカーは、非常に多くのデバイスで利用可能です手頃な価格お問い合わせ


しかし、 何百万人ものデバイスを接続しようとすると、非常にスケーラブルな分散性があります マイクロ サービスベースIoTプラットフォームお問い合わせ 存在している 強力なデータ可視化に統合。 フェンス プラットフォームは拡張およびカスタマイズできます お問い合わせ 縦およびその目的。


同様に、デバイスが強力なM2M通信を可能にし、無料のプライベートクラウドを設定 セキュアMQTTブローカー。 セットアップ工程で成功事例をお聞きします。


IoT を現在のプロセスに有効化させるためのサポートが必要な場合は、 使用方法私たちのプラットフォームスマートSDK お問い合わせ フリーダイヤル 私達を掲示するために私達をお問い合わせ フォームお問い合わせ