
يقوم مشروع MNM بإنشاء بديل مشروع للبريد الإلكتروني: خادم (انظر أدناه) ، عميل ، وبروتوكول بسيط بينهما.
تعرف على المزيد في mnmnotmail.org.
11 ديسمبر 2020 - تم إصدار V0.1 لـ Linux!
13 أبريل 2019 - معاينة خاصة الآن مباشرة! اتصل بالمؤلف إذا كنت ترغب في تجربته.
19 أغسطس 2018 - بعد الاختبار مع عميل MNM ، قدم حفنة من الإصلاحات. تم تغيير الترخيص إلى MPL.
25 سبتمبر 2017 - تطبيق العميل قيد التطوير.
3 أغسطس 2017 - تقدم محاكاة من 1000 عميل نشط متزامن مليون رسالة بلغ مجموعها 6.7 جيجابايت في 46 دقيقة. ويستخدم ~ 200 ميجابايت ذاكرة الوصول العشوائي ، <10 ميجابايت القرص ، والحد الأدنى من وقت وحدة المعالجة المركزية. يقوم كل عميل بتشغيل دورة مكونة من 19 خطوة تقوم بتسجيل الدخول ، ثم قم بنشرها لمستلمين (15x) أو لمجموعة من 100 (2x) كل 1-30s ، ثم تسجيل الدخول والخمول لمدة 1-30s.
قم بتنزيل ثنائي أو بناء من المصدر
أ) احصل على MNM-TMTPD-Linux-AMD64-V0.1.0.TGZ
ب) استخراج مع tar xzf mnm-tmtpd-linux-amd64-v0.1.0.tgz
أو
أ) go get github.com/networkimprov/mnm
تمكين TCP+TLS مع شهادة توقيع ذاتيا
أ) cd mnm
ب) openssl ecparam -genkey -name secp384r1 -out server.key
ج) openssl req -new -x509 -sha256 -key server.key -out server.crt -days 3650
د) cp mnm.conf mnm.config # تحرير لمراجعة NTP.hosts وضبط الاستماع.
ملاحظة: على مضيف إنترنت عام ، سيشهد المنفذ 443 خطوة ثابتة من طلبات التحقيق (غالبًا بقصد ضار) والتي تلوث سجل MNM. اختر منفذًا فوق 1024 لتجنب ذلك.
تشغيل الخادم
A) ./mnm # قد يتطلب المنفذ الافتراضي 443 sudo ./mnm ؛ سجلات إلى stdout & stderr
ب) CTRL-C للتوقف
أو
أ) ./mnm >> logfile 2>&1 &
ب) kill -s INT <background_pid>
توزيع عنوان الخادم على المستخدمين
+ استخدام =address:port لشهادة موقعة ذاتيا ، على سبيل المثال =192.168.1.2:3456
+استخدام +address:port للحصول على شهادة صدرت CA ، على سبيل المثال +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 المعلمة name حقل استجابة tmtprev للخادم.
تحدد المعلمة auth مكان حاجة إلى مصادقة الطرف الثالث:
0 - غير مدعوم
1 - مطلوب للتسجيل
2 - مطلوب للتسجيل وتسجيل الدخول (لم يتم تنفيذه بعد)
تحدد authby Array مجموعة من الكائنات التي تصف مقدمي اتصال OpenID:
label - اسم موفر/تطبيق OIDC
login - صفيف يعطي عنوان URL الأساسي ، متبوعًا بالاسم = معلمات طلب القيمة ، لـ OIDC /authorize
token - صفيف يعطي عنوان URL الأساسي ، متبوعًا بالاسم = معلمات طلب القيمة ، لـ OIDC /token
std - مجموعة من الاسم = معلمات طلب القيمة لإلحاق كل من طلبات login والرمز token
keys - عنوان URL للمفتاح العام اللازم للتحقق من صحة الرموز التي توفرها مصادقة OIDC
iss & aud - القيم المتوقعة للمطالبات في حقل .id_token من الرموز OIDC
إذا كان كائن authby الأول فارغًا ، فإن مصادقة الاتصال المفتوحة أمر اختياري. هذا مفيد للاختبار.
على افتراض تم الحصول على هذا المستودع عبر git clone :
أ) cd mnm
ب) git stash # إذا لزم الأمر
ج) git checkout <your_branch>
د) تحرير kversiondate في main.go
ه) ./pkg.sh # جعل تنزيلات الإصدار
تسلسل اختبار مستمر مع العملاء المحاكاة
أ) ./mnm 10 > /dev/null # قد يكون 2-1000
ب) CTRL-C للتوقف
يعطي ملف الملف test.json سلسلة من الطلبات والنتائج المتوقعة ، والتي يتم تشغيلها قبل الاختبار المستمر. ويتضمن طلبات غير صالحة ، والتي تطبع الرسائل إلى Stderr.
حقوق الطبع والنشر 2020 ليام بريك
تم النشر على https://github.com/networkimprov/mnm
يخضع نموذج رمز المصدر هذا لشروط ترخيص Mozilla Public ، v. 2.0. إذا لم يتم توزيع نسخة من MPL مع هذا الملف ، فيمكنك الحصول على نسخة على http://mozilla.org/mpl/2.0/