
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의 1 백만 메시지를 제공합니다. ~ 200MB RAM, <10MB 디스크 및 최소 CPU 시간을 사용합니다. 각 클라이언트는 로그인 한 19 단계주기를 실행 한 다음 1-30 대마다 두 명의 수신자 (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를 수정하고 "호스트 : 포트"로 LISTER.LADDR을 조정하십시오.
참고 : 공개 인터넷 호스트에서 포트 443은 MNM 로그를 오염시키는 꾸준한 프로브 요청 (종종 악의적 인 의도)을 볼 수 있습니다. 이를 피하려면 1024 이상의 포트를 선택하십시오.
서버를 실행하십시오
a) ./mnm # 기본 포트 443은 sudo ./mnm 요구할 수 있습니다. STDOUT & STDERR에 로그인합니다
b) 중지 할 Ctrl-C
또는
a) ./mnm >> logfile 2>&1 & # 백그라운드에서 실행되며 로그 파일 끝으로의 로그
b) kill -s INT <background_pid> # sigint 신호 보내기, 우아한 종료 트리거
서버 주소를 사용자에게 배포하십시오
+ 사용 =address:port (예 =192.168.1.2:3456
+사용 +address:port (예 +mnm.example.com:443
"mnm.config"파일에는이 필드가있는 JSON 객체가 포함되어 있습니다.
ntp (Network Time Protocol) 객체는 다음을 정의합니다.
hosts - NTP 서버 배열
retries - 각 호스트를 재 시도하는 횟수
listen 객체는 다음과 같습니다.
net & laddr net.ListenConfig.Listen(nil, net, laddr)
certPath & keyPath tls.LoadX509KeyPair(certPath, keyPath)
name 매개 변수는 서버의 tmtprev 응답 .name 필드를 정의합니다.
auth 매개 변수는 제 3 자 인증이 필요한 위치를 정의합니다.
0 지원되지 않습니다
1 등록에 필요합니다
2 등록 및 로그인이 필요합니다 (아직 구현되지 않음)
authby 어레이는 OpenID Connect 제공 업체를 설명하는 일련의 개체를 정의합니다.
label - OIDC 제공 업체/응용 프로그램의 이름
login - 기본 URL을 제공하는 배열, 이름 = 값 요청 매개 변수, OIDC /authorize
token - 기본 URL을 제공하는 배열, OIDC /token 의 이름 = 값 요청 매개 변수가 이어집니다.
std 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
File test.json 연속 테스트 전에 실행되는 일련의 요청 및 예상 결과를 제공합니다. STDERR에 메시지를 인쇄하는 잘못된 요청이 포함되어 있습니다.
저작권 2020 Liam Breck
https://github.com/networkimprov/mnm에 게시되었습니다
이 소스 코드 양식은 Mozilla Public License, v. 2.0의 조건에 따릅니다. MPL의 사본 이이 파일과 함께 배포되지 않은 경우 http://mozilla.org/mpl/2.0/에서 얻을 수 있습니다.