Telnet을 통해 POP / SMTP 서버에 연결


3

텔넷 (포트 25 및 110)을 통해 SMTP / POP 서버에 연결하기 위해 연결하려고합니다. 그러나 본인을 인증 할 수 없습니다. 내가 시도 할 때마다 (pop)

-ERR SPA Required, use AUTH or APOP

내가 검색 한 결과 SPA는 Microsoft의 자산이라는 것을 알았습니다. 텔넷을 사용하여 인증 할 수 있습니까?


SPA가 클라이언트를 사용하여 인증하도록 설정해야하는 경우 텔넷에 대해 동일하며, 서버가 SPA 만 수락하도록 구성되어 있으면 인증 할 수 없습니다.
Paul

답변:


6

아마도. 서버가 일반 인증 방법을 사용 가능하게하기 전에 보안을 제공하기 위해 openssl을 사용해야 할 수도 있습니다.

먼저 사용 가능한 AUTH 메커니즘을 확인해야합니다. AUTH인수없이 명령을 팝 서버 에 전달하여이를 수행 할 수 있습니다 .

$ telnet pop-server.example.com 110
Trying 10.10.10.10...
Connected to pop-server.example.com
Escape character is '^]'.
+OK The Microsoft Exchange POP3 service is ready.
AUTH
+OK
NTLM
GSSAPI
PLAIN
.
quit
+OK Microsoft Exchange Server 2010 POP3 server signing off.

좋은. ( 어쨌든 우리의 목적을 위해 )이 서버는 일반 AUTH를 허용합니다. 이제 사용자 이름과 암호를 결합한 다음 base64로 인코딩 된 인증 문자열을 작성해야합니다.

AUTH 문자열의 형식은이어야한다는 특정 요구 사항이 <NUL>username<NUL>password있습니다. 이 정보를 종합 할 수있는 몇 가지 방법이 있습니다. perl 또는 printf 명령을 사용할 수 있습니다.

bash-$ perl -MMIME::Base64 -e 'print encode_base64("\000username\000password");'
AHVzZXJuYW1lAHBhc3N3b3Jk

또는 MIME :: Base64 perl 모듈이 설치되어 있지 않은 경우.

bash-$ printf '\000username\000password' | base64
AHVzZXJuYW1lAHBhc3N3b3Jk

해당 명령이 리턴하는 문자열은 base64로 인코딩 된 사용자 이름 및 비밀번호이며 AUTH 명령에 전달합니다.

이제 팝 서버에 대한 인증 세션은 다음과 같습니다.

$ telnet pop-server.example.com 110
Trying 10.10.10.10...
Connected to pop-server.example.com
Escape character is '^]'.
+OK The Microsoft Exchange POP3 service is ready.
AUTH PLAIN
+ 
AHVzZXJuYW1lAHBhc3N3b3Jk
+OK Logged in.

이제해야 할 일을 할 수 있습니다. 그러나 서버는 암호화되지 않은 세션에서 AUTH PLAIN을 사용하도록 허용하지 않을 수 있습니다. 이 경우 pop3 세션을 관리하기 위해 텔넷 대신 openssl을 사용해야 할 수도 있습니다.

openssl s_client -connect pop-server.example.com:995

이제 세션이 SSL / TLS로 보호되며 위에서 설명한 AUTH 방법으로 진행하여 pop3 서버와 상호 작용할 수 있습니다.

bash-$ openssl s_client -connect pop-server.example.com:995
CONNECTED(00000003)
<snip a bunch of ssl cruft>
SSL-Session:
    Protocol  : TLSv1
    Cipher    : AES128-SHA
    Session-ID: blahblahblah
    Session-ID-ctx: 
    Master-Key: blahblahblah
    Key-Arg   : None
    Start Time: 1320992572
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---
+OK The Microsoft Exchange POP3 service is ready.

그리고 여기서부터는 일반 텔넷 세션에서 일반적으로하는 방식으로 서버와 상호 작용할 수 있습니다.


큰 답변 주셔서 감사합니다. 내 서버는 현재 NTLM 만 허용합니다. 관리자에게 인증 옵션을 추가하도록 요청했습니다. 이 게시물에서 많은 것을 배웠습니다. :)
Ankit

@Ankit : NTLM은 base64로 인코딩 된 문제를 읽고 적절한 응답을 작성해야하기 때문에 어렵습니다. 실제로는 직접 수행 할 수 없습니다. (자세한 내용은 msdn.microsoft.com/en-us/library/cc246870%28v=prot.10%29.aspx 참조 ) Mutt메일 클라이언트는 메일 클라이언트를 원하는 경우 NTLM 인증을 지원합니다. 터미널에서 사용할 수 있습니다.
팀 케네디
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.