저는 현재 인증된 SMTP를 위해 개인 서버에서 postfix와 SASL을 사용하고 있습니다.
이 서버는 순전히 개인적인 용도와 개인 도메인이므로 SSH 공개 키를 기반으로 하는 더 간단한 서버를 사용하고 싶습니다. 그러한 솔루션이 존재합니까?
답변1
SSH에 대한 공개키 인증은 아니지만(SMTP가 아닌 SSH 프로토콜에만 존재함),TLS 클라이언트 인증서. 이를 위해서는 클라이언트가 유효한 SSL 인증서를 제공해야 합니다.
또는 SSH에 공개 키를 사용해야 하는 경우 개인 SMTP 서버의 localhost에서 모든 메일 연결을 허용하고 SSH를 통해 SMTP 서버의 포트 25에 대한 SSH 터널을 설정할 수 있습니다.
답변2
네트워크 애플리케이션이 SSH 키를 사용하여 인증/암호화하는 것을 방지할 수 있는 방법은 없습니다. 단, 이러한 애플리케이션을 지원하기 위해 작성해야 하는 경우는 예외입니다(예: libssh 사용). 어떤 메일 사용자 에이전트를 사용하는지, 어떤 SMTP 서버에 연결하는지 지정하지 않지만 기본적으로 SSH를 지원하는 경우는 거의 없습니다.
그러나 물론 서버에 대한 일반 SSH 연결을 사용하여 SMTP 세션을 터널링할 수 있습니다. 물론 이것은 (SMTP 서버가 아닌) 컴퓨터에 사용자를 인증하는데, 이는 원하는 것이 아닐 수도 있습니다.
답변3
SMTP 서버는 일반적으로 연결할 때 SSL 인증서를 확인하지 않지만 이를 사용하여 채널을 암호화합니다. 이를 통해 자체 서명된 인증서나 민간 기관의 인증서를 사용하여 쉽게 구성할 수 있습니다. (자체 서명된 인증서는 SSH 인증서와 동일합니다.) 나는 TinyCA를 사용하여 자체 인증 기관을 만듭니다. 최대 4096의 키 크기를 사용할 수 있습니다. 2048 이상의 크기를 사용해야 합니다.
MUA(메일 사용자 에이전트: Firefox, Outlook 등)는 자체 서명된 인증서와 잘 작동합니다. 처음에는 꼭 가져가야 합니다. startTLS 및 인증과 함께 제출 포트를 사용하는 것이 좋습니다. 이렇게 하면 안전한 인증 채널이 제공됩니다.
저는 자체 서명된 인증서를 사용하여 이메일을 읽는 Dovecot IMAP 및 startTLS를 사용합니다. 하나 이상의 클라이언트 외에도 IMAP을 사용하면 웹메일 인터페이스 사용과 같은 추가 옵션도 제공됩니다.
답변4
localhost의 인증되지 않은 릴레이를 허용하도록 메일 서버를 구성하고 메일 전송을 위한 SSH 터널을 설정합니다.
ssh yourserver -L 8587:localhost:587
그러면 SSH를 통해 로컬 포트 8587이 서버 포트 587의 서버로 전달됩니다. 그런 다음 localhost
포트를 사용하도록 메일 클라이언트를 구성하십시오 8587
.
그래도 SASL 인증을 유지하는 것이 좋습니다.