포스트픽스 릴레이호스트. 연결이 거부되었습니다

포스트픽스 릴레이호스트. 연결이 거부되었습니다

Postfix가 릴레이 호스트로 이메일 전송을 거부하고 있습니다. 계속해서 다음과 같이 말합니다.

mydomain.com[xxx.xx.xxx.xxx]에 연결:25: 연결이 거부되었습니다.

그러나 포트 25는 열려 있습니다.

sudo netstat -ntlp

tcp        0      0 127.0.0.1:33060         0.0.0.0:*               LISTEN      39162/mysqld        
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      57910/proftpd: (acc 
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      614/systemd-resolve 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      762/sshd: /usr/sbin 
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      70265/master        
tcp6       0      0 :::3306                 :::*                    LISTEN      39162/mysqld        
tcp6       0      0 :::80                   :::*                    LISTEN      61217/apache2       
tcp6       0      0 :::22                   :::*                    LISTEN      762/sshd: /usr/sbin 
tcp6       0      0 ::1:25                  :::*                    LISTEN      70265/master        
tcp6       0      0 :::443                  :::*                    LISTEN      61217/apache2

이 문제가 어디서 발생하는지 전혀 모르겠습니다.
누군가 나를 도와줄 수 있나요?

답변1

릴레이 호스트에는 인증이 필요합니다. 즉, 이 릴레이 호스트를 통해 메일을 보낼 수 있다는 것을 증명해야 합니다. 일반적으로 Relayhost 운영자는 Relayhost와 통신할 때 사용할 Postfix에서 구성하는 자격 증명(일부 로그인 및 비밀번호)을 제공합니다.

Postfix가 SMTP 서버인 릴레이 호스트와 통신할 때 사용되는 SMTP 클라이언트 인증 구성은 다음 항목에 설명되어 있습니다.접미사 SASL Howto. 방법은 다음과 같습니다.

접미사에서 main.cf:

relayhost = [relay.host.name]
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

첫 번째 줄은 릴레이 호스트를 설정하고, 두 번째 줄은 인증을 활성화하며, 세 번째 줄은 각 릴레이 호스트에 대한 자격 증명이 저장되는 파일, 즉 을 지정합니다 /etc/postfix/sasl_passwd. 해당 파일에 다음을 넣습니다.

[relay.host.name]              username:password

항상 postmap /etc/postfix/sasl_passwd이 파일을 변경한 후와 postfix reload편집한 후에 실행하십시오 main.cf. 또한 이 파일에는 민감한 정보가 포함되어 있으므로 이 파일에 대한 액세스를 제한하세요.

chmod 0600 /etc/postfix/sasl_passwd
chown root:root /etc/postfix/sasl_passwd

smtp submission릴레이 호스트가 다른 포트에서 제출을 기대하는 경우(예를 들어 릴레이 호스트를 설정해야 할 때 포트 에서 수행함 ) 파일의 in 및 동일 tcp/587에서 이를 지정해야 합니다 .relayhost = [relay.host.name]:submissionmain.cfsasl_passwd

tcp/465Postfix SMTP 클라이언트는 "직접 SMTPS"("래퍼 모드"라고 함)를 지원하지 않습니다. 여기서 SMTP-over-SSL 서버는 Google이 수행하는 것과 같이 포트에서 직접 SSL 핸드셰이크를 기대합니다 . STARTTLS 명령으로 시작하려면 포트 25 또는 587을 통한 TLS만 지원합니다.

답변2

Connection refused주어진 인터페이스의 주어진 포트에서 아무것도 수신 대기하고 있지 않음을 의미합니다. 그리고 netstat 출력에는 포트 25가 127.0.0.1루프백 인터페이스에서만 수신 대기하고 있음이 표시됩니다.

다른 컴퓨터에서 액세스하려고 하면 연결할 수 없습니다.

Postfix가 모든 인터페이스를 수신하도록 하려면 변경해야 합니다.inet_interfaces:

inet_interfaces = all

여러 인터페이스가 있고 모든 인터페이스를 수신하지 않으려는 경우 수신해야 하는 IP 주소의 쉼표로 구분된 목록을 제공할 수도 있습니다.

관련 정보