접미사: 릴레이 액세스가 거부되었습니다.

접미사: 릴레이 액세스가 거부되었습니다.

postfix를 실행하는 서버에 텔넷으로 접속하여 이메일을 보내려고 하면:

MAIL FROM:<[email protected]>
#=> 250 2.1.0 Ok

RCPT TO:<[email protected]>
#=> 554 5.7.1 <[email protected]>: Relay access denied

사이트에서 실제로 답변을 찾을 수 없거나 다른 사용자의 질문/답변을 보면 어디서부터 시작해야 할지 잘 모르겠습니다. 아이디어?


업데이트

기본적으로 문서를 살펴보면 다음과 같습니다.http://www.postfix.org/SMTPD_ACCESS_README.html(부분:SMTP 액세스 제한 목록으로 선택하기), 여기에는 해당 지시어가 없는 것 같습니다.etc/postfix/main.cf

또는 smtpd_client_restrictions = permit_mynetworks, reject다른 것 중 하나이므로 매우 혼란 스럽습니다.

하지만 실제로는 Rails 앱을 서버에 연결하고 이메일을 보내도록 할 것이므로 어떻게 처리해야 할지 잘 모르겠습니다.

내 구성 파일은 다음과 같습니다.

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = rerecipe-utils
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = $myhostname, localhost.$mydomain, localhost, mail.rerecipe.com, rerecipe.com
relayhost =
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
mynetworks = 127.0.0.0/8 204.232.207.0/24 10.177.64.0/19 [::1]/128 [fe80::%eth0]/64 [fe80::%eth1]/64

주목해야 할 점은 relayhost비어 있다는 것입니다. 이것은 Postfix를 설치할 때 생성된 기본 구성 파일이며, 연결을 테스트할 때 openssl다음과 같은 결과를 얻습니다.

~% openssl s_client -connect mail.myhostname.com:25 -starttls smtp
CONNECTED(00000003)
depth=0 /CN=myhostname
verify error:num=18:self signed certificate
verify return:1
depth=0 /CN=myhostname
verify return:1
---
Certificate chain
 0 s:/CN=myhostname
   i:/CN=myhostname
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIBqTCCARICCQDDxVr+420qvjANBgkqhkiG9w0BAQUFADAZMRcwFQYDVQQDEw5y
ZXJlY2lwZS11dGlsczAeFw0xMDEwMTMwNjU1MTVaFw0yMDEwMTAwNjU1MTVaMBkx
FzAVBgNVBAMTDnJlcmVjaXBlLXV0aWxzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
iQKBgQDODh2w4A1k0qiPNPhkrPj8sfkxpKPTk28AuZhgOEBYBLeHacTKNH0jXxPv
P3TyhINijvvdDPzyuPJoTTliR2EHR/nL4DLhr5FzhV+PB4PsIFUER7arx+1sMjz6
5l/Ubu1ppMzW9U0IFNbaPm2AiiGBQRCQN8L0bLUjzVzwoSRMOQIDAQABMA0GCSqG
SIb3DQEBBQUAA4GBALi2vvk9TGKJubXYJbU0PKmVmsfzFK35yLqr0keiDBhK2Leg
274sWxEH3ds8mUaRftuFlXb7RYAGNlVyTuMTY3CEcnqIsH7F2McCUTpjMzu/o1mZ
O/B21CelKetBd1u79Gkrv2vWyN7Csft6uTx5NIGG2+pGi3r0gX2r0Hbu2K94
-----END CERTIFICATE-----
subject=/CN=myhostname
issuer=/CN=myhostname
---
No client certificate CA names sent
---
SSL handshake has read 1203 bytes and written 360 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 1024 bit
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : DHE-RSA-AES256-SHA
    Session-ID: 1AA4B8BFAAA85DA9ED4755194C50311670E57C35B8C51F9C2749936DA11918E4
    Session-ID-ctx: 
    Master-Key: 9B432F1DE9F3580DCC6208C76F96631DC5A4BC517BDBADD5F514414DCF34AC526C30687B96C5C4742E9583555A118232
    Key-Arg   : None
    Start Time: 1292985376
    Timeout   : 300 (sec)
    Verify return code: 18 (self signed certificate)
---
250 DSN

이상하게도 기기 자체에서 이메일을 보내려고 하면하다일하다:

echo test | mail -s "test subject" [email protected]

답변1

일반적으로 이러한 유형의 거부를 볼 때 이는 릴레이에 대한 액세스를 위해 프로비저닝된 것과 관련이 있습니다. 즉, 전송/릴레이가 허용되는 것은 무엇입니까? 방금 이 서버를 설정하셨나요? 제대로 설치되어 있나요? 어디에서 보내려고 하시나요? 자세한 내용을 알려주세요.

답변2

사이트에서 실제로 답변을 찾을 수 없거나 다른 사용자의 질문/답변을 보면 어디서부터 시작해야 할지 잘 모르겠습니다. 아이디어?

Google에서 "postfix Relay"를 검색하고첫 번째 결과. 문서에 대한 특정 질문이 있는 경우 또는 무언가를 시도했지만 설명대로 작동하지 않는다고 생각되는 경우 알려주시면 기꺼이 도와드리겠습니다.

답변3

일반적으로 기본적으로 접미사를 사용하여 메시지를 전달하려면 내부 어딘가에서 오거나 mynetworks보낸 사람 이메일 주소가 에 있어야 합니다 mydestination. 물론 이는 기본값이며 일반적으로 smtpd_client_restrictions. 귀하의 예에서 보낸 사람은 입니다 [email protected]. 이는 귀하의 도메인 이름이 아닐 가능성이 높습니다. 구성 파일이 mydomain을 지정하지 않으면 $mydomain이 서버 호스트 이름 도메인에서 초기화됩니다. 따라서 귀하는 mynetworks에서 오지 않고 mydestination에 있지 않기 때문에 귀하의 메일은 해당 postfix 서버에서 시작되거나 끝나지 않으므로 릴레이가 거부됩니다.

반면, 컴퓨터 자체(127.0.0.1)에서 오면 mynetworks에 있으므로 문제 없이 중계됩니다.

실제로 Larsks가 지적했듯이 몇 가지 "마법의" 구성 지시문보다 postfix 메일 릴레이에 더 많은 것이 있습니다. postfix의 광범위한 온라인 문서에 익숙해져야 합니다.

관련 정보