Alpine 이메일 클라이언트: SSH를 통해 다른 서버에서 이메일 보내기

Alpine 이메일 클라이언트: SSH를 통해 다른 서버에서 이메일 보내기

중요한 이메일을 받지 못하거나 반송 메일을 받지 못하여 어려움을 겪었습니다.

이 문제의 한 가지 요인은 Alpine이 일부 (기본) SMTP 서버와 직접 통신하는 경우 내 노트북(때때로 동적으로 할당된 IP 주소가 있음)이 발신자로 나타나는지 궁금합니다. 내 이메일이 내 노트북에서 나왔다면 아마도 덜 존중받을 것입니다.

그렇다면 smtp-server내 노트북이 아닌 다른(고정 IP) 컴퓨터에서 sendmail을 사용하도록 Alpine의 설정을 변경할 수 있습니까?

원격(터널) 서버에 비밀번호 없는 SSH 키를 설정했습니다. Alpine에게 다른 곳에서 sendmail을 터널링하도록 지시하려면 어떤 문자열을 입력할 수 있습니까?

지금은 Alpine 형식 이나 문자열을 smtp-server사용하여 원격 SMTP 서버의 IP 이름과 포트 번호를 지정 하지만 ssh를 통해 다른 GNU/Linux 시스템의 메일 프로그램으로 전달하고 싶습니다.tlsssluser=

(저는 실제로 기본값 smtp-rules대신 이 설정을 사용합니다.)smtp-server

좀 더 자세히(내 동기를 설명):

다음은 수신되지 않았고(나중에 심각하게 손상됨) 반송되지 않은 매우 중요한 이메일 헤더의 하단 부분입니다.

Received: from Mylaptop-high (192-0-111-216.cpe.teksavvy.com [192.0.111.216])
    (authenticated bits=0)
        (User authenticated as [email protected])
    by outgoing-alum.mit.edu (8.14.7/8.12.4) with ESMTP id 03F39FMc032212
    (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
    Tue, 14 Apr 2020 23:09:16 -0400
Date: Tue, 14 Apr 2020 23:09:15 -0400 (EDT)
From: C P meuser <[email protected]>
To: Important recipient <[email protected]>
Subject: life or death emergency
Message-ID: <alpine.DEB.2.21.200411111170.2116@Mylaptop-high>
User-Agent: Alpine 2.21 (DEB 202 2017-01-01)

다른 서버는 이를 보고 현재 내 ISP의 IP(teksavvy)에 있는 내 노트북에서 발생한 것임을 확인합니다. 이상적이지는 않지만 McGill 대신 MIT의 smtp 서버를 통해 보내고 있습니다. 그러나 MIT는 나를 인증하고 BCC 주소를 통해 나에게 성공적으로 보냈습니다. 하지만 무언가가 수신자에게 전달되지 못하게 합니다. 아마도 그것은 McGill이 사용하는 Microsoft 서버였을 것입니다.

따라서 제가 우려하는 점은 첫 번째 MTA로서 휴대용 노트북에서 무언가를 꺼내는 것이 좋지 않게 보일 수 있다는 것입니다. 어쩌면 이것이 틀렸을 수도 있습니다. 회사에 있을 땐 같은 노트북이 고정IP와 IP명을 가지고 있는데 이건 집에서 보내는 내용입니다. 제가 무엇 때문에 싸우고 있는지는 잘 모르겠지만 이메일을 거부하는 이유를 줄이기 위해 노력하고 있습니다. 따라서 (특히 집에 있을 때) 노트북보다는 직장의 고정 IP 시스템(ssh 파이프)에서 보내는 것이 더 나을 것입니다.

답변1

이것이 제가 현재 MacBook에서 수년 동안 사용하고 있는 것입니다. ssh-add를 사용했기 때문에 arcticus 서버에 로그인할 필요가 없습니다.

alpinemailarcticus.sh에는 다음이 포함됩니다.

#!/bin/sh
~/bin/ssh53025arcticus.sh
alpine

이것은 쉘 스크립트입니다. 명령줄에 alpinemailarcticus.sh를 입력하고 Enter를 눌러 실행할 수 있습니다. 다른 쉘 스크립트 ssh53025arcticus.sh를 실행한 다음 alpine을 실행합니다.

ssh53025arcticus.sh에는 (ssh 명령이 모두 한 줄에 있음)

#!/bin/sh
ssh -o TCPKeepAlive=no -o ServerAliveCountMax=5 -o ServerAliveInterval=15  -f  -L 53587:localhost:587 -L 53143:localhost:143  arcticus.clifford.ac sleep 15

그러면 여러 포트에 SSH 터널이 설정됩니다. localhost:53587(아래 자세히 설명)을 사용하도록 alpine에서 SMTP 서버를 설정하면 노트북의 alpine은 메일 서버가 localhost에 있다고 생각합니다. 즉, 노트북과 alpine은 포트 53587을 사용하여 통신합니다. 그러나 터널의 반대쪽 끝에서 메일 서버는 사용자가 서버에서 메일 클라이언트를 실행하고 있다고 생각하고 포트 587에서 통신합니다. 서버 활동 문제는 알파인이 연결 문제에 매우 민감한 것 같기 때문에 존재하는 것입니다(딸꾹질은 기술 용어입니다!). 자체 서명된 인증서가 있기 때문에 novalidate-cert가 있습니다. 알파인 도움말을 참조하세요.

결과적으로 이메일 중 하나에 표시되는 모든 헤더는 원격 메일 서버에서 온 것처럼 보입니다.

알파인의 smtp 및받은 편지함은

SMTP Server (for sending) = localhost:53587/notls/novalidate-cert/user=alan                                        
Inbox Path = {localhost:53143/novalidate-cert/user=alan/NoRsh}INBOX                                 

이는 설정을 선택한 다음 구성을 선택한 다음 alpine을 ssh로 설정하여 SSH 터널의 다른 쪽 끝에 있는 원격 메일 서버에서 메일을 보내고 받는 방식으로 Alpine에서 설정됩니다.

여기서는 무시하세요. 이는 들어오는 폴더와 관련이 있으며 문제를 혼란스럽게 할 뿐입니다. 최근에 서버를 직접 사용하여 폴더를 전달하려고 했습니다.

arcticus-inbox {arcticus.clifford.ac:993/novalidate-cert/ssl/user=alan/NoRsh}INBOX

대신에

golfclubs {localhost:53143/novalidate-cert/user=alan/NoRsh}golfclubs

그래서 나는 당신이 smtp에 대해 이것을 할 수 있다고 생각합니다.

귀하의 질문을 발견한 이유는 제가 이 사실을 알고 "alpine mail ssh"를 검색했기 때문입니다.

Ssh Command = <No Value Set>
Ssh Path    = <No Value Set>
Ssh Open Timeout  = <No Value Set>

나는 그것이 무엇을 위한 것인지 전혀 몰랐기 때문에 조사를 시작했습니다.

관련 정보