
MNMプロジェクトは、電子メールの合法的な代替品:サーバー(以下を参照)、クライアント、およびそれらの間の簡単なプロトコルを構築しています。
詳細については、mnmnotmail.orgをご覧ください。
2020年12月11日-V0.1がLinux用にリリースされます!
2019年4月13日- プライベートプレビューがライブです!試してみたい場合は、著者に連絡してください。
2018年8月19日- MNMクライアントでテストした後、ほんの一握りの修正を行いました。ライセンスをMPLに変更しました。
2017年9月25日- クライアントアプリケーションが開発中です。
2017年8月3日- 1000の同時アクティブクライアントのシミュレーションにより、46分で合計6.7GBのメッセージが配信されます。 〜200MB RAM、<10MBディスク、および最小限のCPU時間を使用します。各クライアントは、ログインする19段階のサイクルを実行し、1〜30秒ごとに2人の受信者(15x)または100(2x)のグループに投稿し、1〜30秒間ログアウトしてアイドル状態になります。
バイナリまたはソースからビルドをダウンロードします
A)MNM-TMTPD-LINUX-AMD64-V0.1.0.TGZを取得します
b) tar xzf mnm-tmtpd-linux-amd64-v0.1.0.tgzで抽出します
または
a) go get github.com/networkimprov/mnm
自己署名証明書を使用してTCP+TLSを有効にします
A) cd mnm
b) openssl ecparam -genkey -name secp384r1 -out server.key
c) openssl req -new -x509 -sha256 -key server.key -out server.crt -days 3650
d) cp mnm.conf mnm.config #編集してntp.hostsを修正し、聴取を調整します。
注:パブリックインターネットホストでは、ポート443には、MNMログを汚染するプローブリクエストの安定したトリクル(多くの場合、悪意のある意図を持つ)が表示されます。これを避けるために、1024を超えるポートを選択してください。
サーバーを実行します
A) ./mnm #デフォルトポート443にはsudo ./mnmが必要になる場合があります。 stdout&stderrへのログ
b)停止するCtrl-C
または
a) ./mnm >> logfile 2>&1 & #&1を背景に実行し、logfileの終わりまでログ
b) kill -s INT <background_pid> #sigint信号を送信し、優雅なシャットダウンをトリガーします
サーバーアドレスをユーザーに配布します
+ use =address:port 、例えば=192.168.1.2:3456
+使用+address:port 、たとえば+mnm.example.com:443
ファイル「mnm.config」には、これらのフィールドを持つJSONオブジェクトが含まれています。
ntp (ネットワークタイムプロトコル)オブジェクトが定義します。
hosts - NTPサーバーの配列retries - 各ホストを再試行する回数
listenオブジェクトが定義します:
net & laddr net.ListenConfig.Listen(nil, net, laddr)
certPath & keyPath - tls.LoadX509KeyPair(certPath, keyPath)への引数
nameパラメーターは、サーバーのtmtprev応答.nameフィールドを定義します。
authパラメーターは、サードパーティの認証が必要な場所を定義します。
0サポートされていません1登録に必要です2登録とログインに必要な(まだ実装されていない)
authby配列は、OpenID Connectプロバイダーを説明するオブジェクトのセットを定義します。
label - OIDCプロバイダー/アプリケーションの名前login - ベースURLを与える配列、その後にname = value requestパラメーターが続き、oidc /authorize
token - oidc /token用のベースURLを与える配列、name = value requestパラメーターが続きますstd -name = value requestパラメーターの両方のloginとtokenリクエストに追加するパラメーターkeys - OIDC認証によって提供されるトークンを検証するために必要な公開キーのURL
iss & aud oidcトークンの.id_tokenフィールドでの請求の期待値
最初のauthbyオブジェクトが空の場合、OpenID Connect認証はオプションです。これはテストに役立ちます。
このリポジトリがgit cloneを介して取得されたと仮定します。
A) cd mnm
b)必要に応じてgit stash #
c) git checkout <your_branch>
d)main.goでkversiondateを編集します
e) ./pkg.sh #ダウンロードをリリースします
シミュレートされたクライアントを使用した連続テストシーケンス
a) ./mnm 10 > /dev/null #は2-1000になる場合があります
b)停止するCtrl-C
ファイルtest.json 、一連のリクエストと予想される結果を提供します。これは、継続的なテストの前に実行されます。 STDERRにメッセージを印刷する無効な要求が含まれています。
著作権2020リアムブレック
https://github.com/networkimprov/mnmで公開されています
このソースコードフォームは、Mozilla Public Licensev。2.0の条件の対象となります。 MPLのコピーがこのファイルで配布されていない場合は、http://mozilla.org/mpl/2.0/で入手できます。