
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分鐘內提供了100萬條消息,總計6.7GB。它使用〜200MB RAM,<10MB磁盤和最小CPU時間。每個客戶端運行一個19步循環,可登錄,然後每1-30秒鐘發布兩個收件人(15倍)或100(2倍)的組,然後註銷和空閒1-30。
從源頭下載二進製或構建
a)獲取MNM-TMTPD-Linux-AMD64-V0.1.0.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,並使用“主機:端口”調整list.laddr。
注意:在公共互聯網主機上,港口443將看到穩定的探針請求(通常具有惡意意圖),從而污染MNM日誌。選擇一個上方的端口1024以避免這種情況。
運行服務器
a) ./mnm #默認端口443可能需要sudo ./mnm ;登錄到stdout&stderr
b) Ctrl-C停止
或者
a) ./mnm >> logfile 2>&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連接提供程序的對象:
label - OIDC提供商/應用程序的名稱login - 給出基本URL的數組,然後是name = value請求參數,用於OIDC /authorize
token - 給出基本URL的陣列,然後是name = value請求參數,oidc /token
std名稱數=值請求參數,以附加到login和token請求keys - 驗證由OIDC身份驗證提供的令牌所需的公共密鑰的URL
iss & aud OIDC代幣的.id_token字段中索賠的預期值
如果第一個authby對象為空,則OpenID連接身份驗證是可選的。這對於測試很有用。
假設該存儲庫是通過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公共許可證的條款,第2.0節。如果該文件未分發MPL的副本,則可以在http://mozilla.org/mpl/2.0/上獲取一個副本。